﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using mamnontuoitho7.AppCode;
using System.Data;

namespace mamnontuoitho7.module
{
    public partial class TeacherProfile : System.Web.UI.Page
    {
        protected Teacher _teacher = new Teacher();
        protected General _general = new General();
        private Class _class = new Class();
        protected DataRow _dtrTeacher;

        protected void Page_Load(object sender, EventArgs e)
        {

            //Check Permission
            if (Session["memberID"].ToString() != "" && Session["role"].ToString() == "3")
            {
                if (!IsPostBack)
                {
                    try
                    {
                        loadTeacherInformation(Session["memberID"].ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        Response.Redirect(ConstantClass._errorLoginPage);
                    }
                }
            }
            else
            {
                Response.Redirect(ConstantClass._errorLoginPage);
            }


            Session["Common_articleTypeID"] = "1";

        }


        /// <summary>
        /// Load teacher information from database
        /// </summary>
        private void loadTeacherInformation(String memberID)
        {
            try
            {
                _dtrTeacher = _teacher.GetTeacherDetails(memberID);
                txtMemberName.Text = _dtrTeacher["MemberName"].ToString();
                txtFullname.Text = _dtrTeacher["FullName"].ToString();
                ddlSex.SelectedValue = _dtrTeacher["Sex"].ToString() == "1" ? "1" : "0";
                txtBirthday.Text = _dtrTeacher["Birthday"].ToString();
                txtAddress.Text = _dtrTeacher["Address"].ToString();
                txtEmail.Text = _dtrTeacher["Email"].ToString();

                txtPhone.Text = _dtrTeacher["Phone"].ToString();
                txtClass.Text = _dtrTeacher["ClassName"].ToString() + ", Khối " + _dtrTeacher["ClassCategoryName"].ToString();
                //Session["avatar"] = _dtrTeacher["Avatar"].ToString();
                imgTeacher.ImageUrl = "../images/avatar/teacher_parents/" + (_dtrTeacher["Avatar"].ToString() == "" ? ConstantClass._memberDefaultAvatar : _dtrTeacher["Avatar"].ToString());
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }


        protected void btnChangeProfile_Click(object sender, EventArgs e)
        {
            try
            {
                string memberID = Session["memberID"].ToString();
                if (txtCurrentPassword.Text.Trim() != "")
                {
                    //Check current pass
                    bool checkPass = _teacher.CheckPass(memberID, txtCurrentPassword.Text.Trim());
                    if (!checkPass)
                    {
                        lblNotice.Visible = true;
                        lblNotice.Text = "Cột mật khẩu hiện tại không chính xác.";
                        return;
                    }

                    //Test new pass
                    if (txtNewPassword.Text.Trim() != "")
                    {
                        if (txtNewPassword.Text.Trim().Length < 4)
                        {
                            lblNotice.Visible = true;
                            lblNotice.Text = "Mật khẩu mới phải có ít nhất là 4 ký tự.";
                            return;
                        }

                        if (txtNewPassword.Text.Trim() != txtConfirmNewPassword.Text.Trim())
                        {
                            lblNotice.Visible = true;
                            lblNotice.Text = "Mật khẩu mới và Xác nhận mật khẩu không giống nhau.";
                            return;
                        }
                    }

                    bool checkUpdate = _teacher.UpdateTeacher(memberID,
                                                              ddlSex.SelectedValue,
                                                              txtBirthday.Text.Trim(),
                                                               txtAddress.Text.Trim(),
                                                              txtEmail.Text.Trim(),
                                                              txtPhone.Text.Trim(),
                                                              txtNewPassword.Text.Trim());


                    if (checkUpdate)
                    {
                        lblNotice.Visible = true;
                        lblNotice.Text = "Thông tin của bạn đã được cập nhật.";

                        //Reload information after update
                        loadTeacherInformation(memberID);
                    }
                    else
                    {
                        lblNotice.Visible = true;
                        lblNotice.Text = "Có lỗi hệ thống không thể cập nhật được.";
                    }

                }
                else
                {
                    lblNotice.Visible = true;
                    lblNotice.Text = "Phải nhập mật khẩu hiện tại để cập nhật thông tin.";
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }


        protected void btnCancle_Click(object sender, EventArgs e)
        {
            try
            {
                loadTeacherInformation(Session["memberID"].ToString());
                lblNotice.Visible = false;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }


    }
}